package com.anti.modular.bus.busroom.param;

import com.anti.commom.pojo.BaseParam;
import com.anti.modular.bus.roomdeposit.entity.RoomDeposit;
import com.anti.modular.bus.roomexpenses.entity.RoomExpenses;
import com.anti.modular.bus.roomfurniture.entity.RoomFurniture;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
* 房间表参数类
 *
 * @author anti
 * @date 2021-04-16 19:14:02
*/
@Data
public class BusRoomParam extends BaseParam {

    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空，请检查id参数", groups = {edit.class, delete.class, detail.class})
    private Long id;

    /**
     * 楼层id
     */
    private Long floorid;

    /**
     * 房产id
     */
    private Long estateid;

    /**
     * 房间编号
     */
    @NotBlank(message = "房间编号不能为空，请检查code参数", groups = {add.class, edit.class})
    private String code;

    /**
     * 楼层
     */
    private String floor;

    /**
     * 电梯还是楼梯 （字典 1电梯 2楼梯)
     */
    @NotNull(message = "电梯还是楼梯 （字典 1电梯 2楼梯)不能为空，请检查elevator参数", groups = {add.class, edit.class})
    private Integer elevator;

    /**
     * 户型名稱
     */
    private String roomTypeName;

    /**
     * 户型
     */
    @NotNull(message = "户型不能为空，请检查roomType参数", groups = {add.class, edit.class})
    private Integer roomType;

    /**
     * 面积（平米）
     */
    @NotBlank(message = "面积（平米）不能为空，请检查area参数", groups = {add.class, edit.class})
    private String area;

    /**
     * 房间类型 （字典 house_type）
     */
    @NotNull(message = "房间类型 （字典 house_type）不能为空，请检查houseType参数", groups = {add.class, edit.class})
    private Integer houseType;

    /**
     * 收租周期
     */
    private String receiptcycle;

    /**
     * 付 （字典 付1-付18）
     */
    @NotNull(message = "付 （字典 付1-付18）不能为空，请检查receiptfu参数", groups = {add.class, edit.class})
    private Integer receiptfu;

    /**
     * 押 （字典 押1-押18-自定义19）
     */
    @NotNull(message = "押 （字典 押1-押18-自定义19）不能为空，请检查receiptya参数", groups = {add.class, edit.class})
    private Integer receiptya;

    /**
     * 依据（字典 1日 2月 3年 4一次付清）
     */
    @NotNull(message = "依据（字典 1日 2月 3年 4一次付清）不能为空，请检查receiptyj参数", groups = {add.class, edit.class})
    private Integer receiptyj;

    /**
     * 每月租金
     */
    @NotNull(message = "每月租金不能为空，请检查rent参数", groups = {add.class, edit.class})
    private BigDecimal rent;

    /**
     * 每月押金
     */
    @NotNull(message = "每月押金不能为空，请检查deposit参数", groups = {add.class, edit.class})
    private BigDecimal deposit;

    /**
     * 租金水电是否分开收取（1 是 0不是）
     */
    @NotNull(message = "租金水电是否分开收取（1 是 0不是）不能为空，请检查hydropower参数", groups = {add.class, edit.class})
    private Integer hydropower;

    /**
     * 水电周期
     */
    private Integer hydropowercycle;

    /**
     * 账单起始日
     */
    private Integer billstart;

    /**
     * 账单收租日日 （字典 0提前  1 固定）
     */
    private Integer billEndType;

    /**
     * 账单收租日提前几日
     */
    private Integer billEndTqData;

    /**
     * 账单收租日固定几月（有正负）
     */
    private Integer billEndGdmonthData;

    /**
     * 账单收租日固定几日
     */
    private Integer billEndGddayData;

    /**
     * 图片
     */
    private String images;

    /**
     * 是否正在出租 （ 1 是 0 否）
     */
    private Integer lease;

    /**
     * 正在出租的租约id
     */
    private Long leaseid;
    /**
     * 是否绑定业主 （ 1 是 0 否）
     */
    private Integer owner;

    /**
     * 业主id
     */
    private Long ownerId;
    /**
     * 押金列表
     */
    private List<RoomDeposit> yjData =new ArrayList<>();

    /**
     * 費用列表
     */
    private List<RoomExpenses> fyData=new ArrayList<>();

    /**
     * 家私列表
     */
    private List<RoomFurniture> jsData=new ArrayList<>();
}
